#ifndef  M_STANDARD_DIFFUSE_MATERIAL
#define M_STANDARD_DIFFUSE_MATERIAL
#include"material.h"
#include"../BxDF/BlinnPhong.h"
#include"../BxDF/Lambertian.h"
#include"../BxDF/Specular.h"
class StandardMaterial:public Material
{
private:
	Float kd, kh;//coefficients for diffuse term and highlight term
	int  blinnphong_n;
	bool divided_by_NdotL;
	bool isSpec;
public:
	StandardMaterial(bool isSpec,Float kd, Float kh,int blinnphong_n=DEFAULT__BLINNPHONG_N,bool divided_by_NL=DEFAULT_DIVIDED) :
		kd(kd), kh(kh),isSpec(isSpec),
		blinnphong_n(blinnphong_n), divided_by_NdotL(divided_by_NL){}
	shared_ptr<BSDF> createBSDF(Spectrum &color, P3 &norm, TransportMode mode);

};
#endif // ! M_STANDARD_DIFFUSE_MATERIAL
